A common distributed systems architecture typically divides computational processing between local (a.k.a. client) and remote (a.k.a. server) components, with communications via a wired or wireless communications network. In designing such systems, two processes for implementing the local user interface are typical. In one process, the user interface is a core subsystem of the local component, and can only be changed by replacing the whole local component. In the other process, the local user interface is specified by the remote component, typically using a “markup” language.
A personal computer Web browser demonstrates a hybrid of these two processes. The browser is the local component of the system. The user interface of the browser itself is “built in” and can only be changed by updating the browser software. The user interface of the World Wide Web services, however, are defined by HTML and Flash markup code, sent from various Web servers (a.k.a. remote components). That is, the user interfaces of the Web services comprise remote components.
A user interface determined by a local component is free of issues such as latency and resource efficiency, but a user interface determined by a remote component is more easily controlled and updated.